aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/(app)/send/ecash/[request]
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2024-11-21 22:56:09 -0800
committerAdam Soltys <[email protected]>2024-11-21 22:56:35 -0800
commitff3bbbe6a1814ab5b17386eb630b5dd3111578eb (patch)
tree468233f260d41d08685212729cc94b5dc661a570 /src/routes/(app)/send/ecash/[request]
parent38660e024c055952180bfa3f9067274cf2e0d6ed (diff)
downloadcoinos-ui-ff3bbbe6a1814ab5b17386eb630b5dd3111578eb.tar.gz
coinos-ui-ff3bbbe6a1814ab5b17386eb630b5dd3111578eb.zip
ecash requests
Diffstat (limited to 'src/routes/(app)/send/ecash/[request]')
-rw-r--r--src/routes/(app)/send/ecash/[request]/+page.svelte51
1 files changed, 30 insertions, 21 deletions
diff --git a/src/routes/(app)/send/ecash/[request]/+page.svelte b/src/routes/(app)/send/ecash/[request]/+page.svelte
index 7f2ac7ba..bed8c0ae 100644
--- a/src/routes/(app)/send/ecash/[request]/+page.svelte
+++ b/src/routes/(app)/send/ecash/[request]/+page.svelte
@@ -1,5 +1,6 @@
<script lang="ts">
- import { post } from "$lib/utils";
+ import { goto } from "$app/navigation";
+ import { fail, post } from "$lib/utils";
import { applyAction, deserialize } from "$app/forms";
import { t } from "$lib/translations";
import { enhance } from "$app/forms";
@@ -8,7 +9,7 @@
import Spinner from "$comp/Spinner.svelte";
import { rate, pin } from "$lib/store";
import { wrapEvent } from "nostr-tools/nip17";
- import { getPrivateKey, sign } from "$lib/nostr";
+ import { getPrivateKey, sign, send } from "$lib/nostr";
import { getDecodedToken } from "@cashu/cashu-ts";
import type { PaymentRequestPayload } from "@cashu/cashu-ts";
@@ -20,27 +21,35 @@
e.preventDefault();
submitting = true;
- let { token } = await post("/ecash/mint", { amount });
- const dec = (token) => getDecodedToken(token).token[0];
- let { proofs } = dec(token);
- let { id, mints, unit = "" } = req;
- // let mint = mints[0];
- let mint = "http://mint:3338";
- const paymentPayload: PaymentRequestPayload = {
- id,
- mint,
- unit,
- proofs,
- };
+ try {
+ let { pid, token } = await post("/ecash/mint", { amount });
+ const dec = (token) => getDecodedToken(token).token[0];
+ let { proofs } = dec(token);
+ let { id, mints, unit = "" } = req;
+ let mint = mints[0];
+ const paymentPayload: PaymentRequestPayload = {
+ id,
+ mint,
+ unit,
+ proofs,
+ };
- const paymentPayloadString = JSON.stringify(paymentPayload);
- let event = wrapEvent(
- await getPrivateKey(user),
- { publicKey: recipient.pubkey },
- JSON.stringify(paymentPayload),
- );
+ const paymentPayloadString = JSON.stringify(paymentPayload);
+ let event = wrapEvent(
+ await getPrivateKey(user),
+ { publicKey: recipient.pubkey },
+ JSON.stringify(paymentPayload),
+ );
+
+ await sign({ event, user });
+ await send(event);
+
+ goto(`/sent/${pid}`);
+ } catch (e) {
+ console.log(e);
+ fail(e.message);
+ }
- await sign({ event, user });
submitting = false;
};